import pandas as pd

# 去除缺失值
data_order = pd.read_excel(r'../data/新订单表.xlsx')
data_detail = pd.read_excel(r'../data/新明细表.xlsx')
data_user = pd.read_excel(r'../data/新用户表.xlsx')

# 缺失值的统计
data_user.isnull().sum()

# 构造一个缺失数据的例子
data = pd.DataFrame(
    [[1, 180, 70], [2, None, 70], [3, None, None]],
    columns=['学号', '身高', '体重']
)
print(data)

# 删除法

# 以身高为删除缺失值所在的行的依据
dropna = data.dropna(subset=['身高'])

# 以体重为删除缺失值所在的行的依据
data_dropna = data.dropna(subset=['体重'])

# 以身高体重同时作为删除缺失值所在的行的依据
data_frame = data.dropna(subset=['体重', '身高'])

# how参数默认取'any',表示任意一个变量缺失，就删除行
# how='all'时，两个变量同时缺失的行才会删除
d = data.dropna(subset=['体重', '身高'], how='all')

# 如果需要对原数据修改生效，需要使用inplace参数
# data.dropna(subset=['体重','身高'],inplace = True)

# 缺失值填充

ser1 = data['体重'].fillna(data['体重'].mode().values[0])
print(ser1)

data['体重2'] = ser1
print(data)